﻿#region Copyright 
/*-------------------------------------------------------------------------
* 命名空间名称/文件名:    SSPivot.Admin.Core.Service.sys.Dict/ISysDictTypeService 
* CLR版本:     4.0.30319.42000
* 机器名称:    DESKTOP-NHMLO8A
* 功 能：       N/A
* 类 名：       ISysDictTypeService
* 创建时间：  2025/6/4 15:46:24
* 版本号：      v1.0
* 创建人:        xulong
*-------------------------------------------------------------------------*/
#endregion
using SSPivot.Admin.Core.Service.sys.Dict.Dto;
using SSPivot.AspNetCore.Services;
using SSPivot.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SSPivot.Admin.Core.Service.sys.Dict
{
    /// <summary>
    /// 数据字典类型服务
    /// </summary>
    public interface ISysDictTypeService : IApplicationService
    {
        #region 服务

        /// <summary>
        /// 查询
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<SysDictTypeDto> GetAsync(long id);
        /// <summary>
        /// 获取数量 
        /// </summary>
        /// <returns></returns>
        Task<int> CountAsync(QuerySysDictTypeRequest model);
        /// <summary>
        /// 是否存在 
        /// </summary>
        /// <returns></returns>
        Task<bool> AnyAsync(QuerySysDictTypeRequest model);
        /// <summary>
        /// 查询列表
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        Task<List<SysDictTypeDto>> QueryAsync(QuerySysDictTypeRequest model);

        /// <summary>
        /// 查询分页
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns> 
        Task<(List<SysDictTypeDto>, PageResult)> PageAsync(QuerySysDictTypeRequest model, PageResult page);


        /// <summary>
        /// 新增
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<long> AddAsync(SysDictTypeDto input);

        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task UpdateAsync(SysDictTypeDto input);

        /// <summary>
        /// 彻底删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>

        Task DeleteAsync(long id);

        /// <summary>
        /// 批量彻底删除
        /// </summary>
        /// <param name="ids"></param>
        /// <returns></returns>

        Task BatchDeleteAsync(long[] ids);
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>

        Task SoftDeleteAsync(long id);

        /// <summary>
        /// 批量删除
        /// </summary>
        /// <param name="ids"></param>
        /// <returns></returns>

        Task BatchSoftDeleteAsync(long[] ids);
        #endregion
    }
}
